//
//  main.c
//  C_10进程与系统调用
//
//  Created by Robin on 16/3/20.
//  Copyright © 2016年 cnbm. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>
//#include <time.h>
#include <unistd.h>
#include <errno.h>
#include <sys/wait.h>
#include <string.h>

void error (char* msg){
    fprintf(stderr, "%s : %s\n",strerror(errno),msg);
}

void open_url (char *url){
    char lanuch[255];
    printf("打印url %s \n",url);
    sprintf(lanuch, "open '%s'",url);
    system(lanuch);
}

int main(int argc, char * argv[]) {
    
    char *feeds[] = {"RSS_FEED=http://www.huanqiu.com",NULL};
    
    //                   "http://meiwenrishang.com/rss",
    //                   "http://songshuhui.net/feed"};
    
    //int times = 3;
    //int pid_status;
    
    int fd[2];
    if (pipe(fd) == -1) {
        puts("Cannot create pipe\n");
    }
    
    pid_t pid = fork();
    
    if (pid == -1) {
        error("Cannot fork the process");
    }
    
    if (!pid) {
        
        dup2(fd[1], 1);      //        fd[0]; // 读管道   fd[1]; // 写管道
        
        close(fd[0]);
        
        if (execle("/Users/guorobin/Desktop/TempFile/caffe", "/Users/guorobin/Desktop/TempFile/caffe","Guo",NULL,feeds) == -1) {
            error("Cannot run the Script");
            //return 1;
        }
    }
    
    dup2(fd[0], 0);
    
    close(fd[1]);
    
    /**还可以用文件进行 进程间的通信 不是父子进程也可以通信 系统调用 mkfifo()
     
     参考地址:http://tinyurl.com/cdf6ve5
     */
    
    
    char line[255];
    //fgets(line, 255, stdin);
    while (fgets(line, 255, stdin)) {
        //open_url(line);
        
        if (line[0] == 't') {
            open_url (line+1);
        }
    }
    
    return 0;
}
